//
//  UIButton+Addition.h
//  QNReuseTool
//
//  Created by rsh on 2019/10/15.
//  Copyright © 2019年 rsh. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIButton (Addition)

/**
 对象方法：向四周扩大按钮的点击区域
 
 @param size 扩大区域的径向长度
 */
- (void)setEnlargeEdge:(CGFloat)size;


/**
 对象方法：（呈矩形）扩大按钮的点击区域
 
 @param top 顶部扩大范围
 @param left 左边扩大范围
 @param bottom 底部扩大范围
 @param right 右边扩大范围
 */
- (void)setEnlargeEdgeWithTop:(CGFloat)top AndLeft:(CGFloat)left AndBottom:(CGFloat)bottom AndRight:(CGFloat)right;


/// 创建文本按钮
///
/// @param title         文本
/// @param fontSize      字体大小
/// @param normalColor   默认颜色
/// @param selectedColor 选中颜色
///
/// @return UIButton
+ (instancetype)mk_textButton:(NSString *)title fontSize:(CGFloat)fontSize normalColor:(UIColor *)normalColor selectedColor:(UIColor *)selectedColor;


/**
 重新设置按钮样式：图片在上，文字在下
 
 @param space 图片和文字的间距
 */
- (void)mk_resetContentHorizontalAlignmentCenter:(CGFloat)space;


/**
 重置按钮布局：文字在上，图片在下
 */
- (void)mk_resetButton;


/**
 重置按钮布局：文字在上，图片在下，主题色不可用
 */
- (void)mk_resetButtonDisable;


/**
 重新设置按钮布局：文字在左，图片在右
 */
- (void)mk_resetButton_titleLeftImageRight;



/**
 快速创建按钮
 
 @param title 按钮文字
 @param titleColor 按钮文字颜色
 @return 按钮
 */
+ (UIButton *)gp_buttonWithTitle:(NSString *)title andTitleColor:(UIColor *)titleColor;


/**
 快速创建带边框按钮
 
 @param title 按钮文字
 @param titleColor 按钮文字颜色
 @param borderWidth 按钮边框宽度
 @param borderColor 按钮边框颜色
 @return 带边框的按钮
 */
+ (UIButton *)gp_buttonWithTitle:(NSString *)title andTitleColor:(UIColor *)titleColor andBorderWidth:(CGFloat)borderWidth andBorderColor:(CGColorRef)borderColor;


/**
 快速创建选中文字变色的按钮
 
 @param title 按钮正常状态文字
 @param titleColor 按钮正常状态文字颜色
 @param selectedTitle 按钮选中状态文字
 @param selectedColor 按钮选中状态文字颜色
 @return 选中文字变色的按钮
 */
+ (UIButton *)gp_buttonWithTitle:(NSString *)title andTitleColor:(UIColor *)titleColor andSelectedTitle:(NSString *)selectedTitle andSelectedColor:(UIColor *)selectedColor;


/**
 快速创建带边框的选中文字变色的按钮
 
 @param title 按钮正常状态文字
 @param titleColor 按钮正常状态文字颜色
 @param selectedTitle 按钮选中状态文字
 @param selectedColor 按钮选中状态文字颜色
 @param borderWidth 边框宽度
 @param borderColor 边框颜色
 @return 带边框的选中文字变色的按钮
 */
+ (UIButton *)gp_buttonWithTitle:(NSString *)title andTitleColor:(UIColor *)titleColor andSelectedTitle:(NSString *)selectedTitle andSelectedColor:(UIColor *)selectedColor andBorderWidth:(CGFloat)borderWidth  andBorderColor:(CGColorRef)borderColor;

@end

NS_ASSUME_NONNULL_END
